System and method for determining a promise date for a demand in a business environment

ABSTRACT

The present invention provides a method and a system for determining a promise date for a demand whose supply depends on constraints in a business environment. According to the present invention, information related to the business environment is stored within a data storage means. The present invention provides a processor coupled to the data storage means from which it requests and retrieves data. The processor also determines a plan date for each supply in the supply structure. The plan date is determined, from a highest level to a lowest level in the supply structure, based on existing and planned supply in the supply structure. After determining a plan date, the processor determines an available date for each supply in the supply structure. The available date is determined, from the lowest level to the highest level in the supply structure, based on the availability of each supply in the supply structure, and the plan date determined for each supply. Finally, the processor generates a promise date for the demand for the item based on each available date determined for a corresponding supply in the supply structure. The present invention advantageously generates promise dates based on information available in real-time on both the supply structure and the capacity constraints for a given item.

RELATED APPLICATIONS

[0001] This application claims the priority of U.S. Provisional PatentApplications Serial No. 60/381,063 filed May 17, 2002 and No. 60/395,335filed Jul. 12, 2002.

FIELD OF THE INVENTION

[0002] The present invention relates to the field of committing to thecompletion of an activity or delivery of a demand in a businessenvironment by providing a promised completion, or delivery date, for anitem in a business environment.

BACKGROUND TO THE INVENTION

[0003] In the field of Supply Chain Management, traditional systems haverelied upon stored data to define the availability of either the item tobe ordered or of the immediate items that make up the item to beordered. The stored data that defines the availability of items has beeneither an accounting of available inventory, or a combination ofaccounted-for inventory and tracked replenishments on order.Furthermore, previous systems have relied upon other systems toperiodically update the item availability information. Such an approach,utilized by previous systems, presents several problems. For example,some systems only operate for orders of items that are expected to beordered and treat the availability of all resources in the same manner,i.e. the availability of materials treated in the same manner as theavailability of capacity. However, the various types of resources arequite different with respect to their availability, either temporarilyor permanently. While materials, unused in a given period, are generallyavailable in any subsequent period, unused capacity in a given period isusually not available in any subsequent period. For these systems todetermine the availability of items for a new request, availabilityinformation for supplies of that item and its immediate components, ifany, must be available, together with availability information for thecapacity constraints. Provided that both current and relevantinformation is available, the system is able to make a determinationwith respect to the availability of the item. Otherwise, such systemsare flawed, as they are reliant on regular updates of item availabilityinformation.

[0004] Other supply chain management systems determine item availabilityby developing a detailed production schedule for the needed items, whilerespecting existing commitments for supplying items. These systems,commonly known in the art as finite capacity schedulers, requireexcessive computing resources and time to generate a new schedule foreach changed supply or demand. The excessive computation times areproblematic in business environments where businesses are required toprovide completion or delivery dates in a timely manner for interactivepurposes.

[0005] More recent prior art has addressed the processing time inherentin updating plans. They use two processes. The first process generatesan entire plan from the initial data. The second process accepts a smallnumber of changes and replans or repairs the plan around those datachanges. The intention being that the processing time to repair a planafter accepting a limited number of changes is much less than theprocessing time required to generate a new plan from the entire dataset.

[0006] The present invention (1) reduces the complexity of thecalculations and (2) manages storage of intermediate results so that newplans can be generated whenever data changes.

[0007] Supply Chain Management concepts underlie many types of businessenvironments, such as manufacturing environments, distributionenvironments and business organization environments. Each businessenvironment generally has a supply structure producing various items.The prior art systems utilize the supply structure to map out acompletion or delivery date for demand and supplies in these businessenvironments. In a manufacturing environment an item is produced, forexample, by applying processes to components. The components themselvesmay also be made from processes and subcomponents, resulting in severallayers of process and components needed to make the item. These layersof processes, components and subcomponents form the supply structure forthe item. These systems use the principles of netting and explosion todetermine a completion or delivery date for the demand. These principlesare further elaborated upon in “Material Requirements Planning: The NewWay of Life in Production and Inventory Management”, by Joseph A.Orlicky, N.Y.: The McGraw-Hill Companies, 1974.

[0008] In the prior art, however, current supply chain management doesnot incorporate capacity constraints when determining completion ordelivery dates for requested demands. What is needed therefore is amethod of determining promise dates for an item having at least onecapacity constraint where the availability of supplies for a given itemare not known in advance. What are further needed are a method and asystem where the promised delivery date of a demand is determined in anexpedited manner without adversely affecting the promise dates ofexisting commitments for items.

SUMMARY OF THE INVENTION

[0009] The present invention provides a method and a system fordetermining a promise date for a demand whose supply depends onconstraints, in a manufacturing, distribution, supply chain, or otherbusiness environment. According to the present invention, informationrelated to the manufacturing, the distribution, the supply chainstructure, or the business environment is stored within a data storagemeans. The present invention provides a processor coupled to the datastorage means from which it requests and retrieves data. The processoralso determines a plan date for each supply in the supply structure. Theplan date is determined, from a highest level to a lowest level in thesupply structure, based on existing and planned supplies in the supplystructure. The plan date may also be determined based on an availabilityof one or more capacity constraints for each supply. After determining aplan date, the processor determines an available date for each supply inthe supply structure. The available date is determined, from the lowestlevel to the highest level in the supply structure, based on theavailability of each supply in the supply structure, and the plan datedetermined for each supply. The available date may also be determinedbased on the availability of one or more capacity constraints requiredfulfilling each supply. Finally, the processor generates a promise datefor the demand for the item based on each available date determined fora corresponding supply in the supply structure.

[0010] The present invention is advantageous in that it generatespromise dates based on information available in real-time on both thesupply structure and the capacity constraints for a given item. Anotheradvantage of the present invention is that it utilizes a prioritizingsystem to protect promise dates committed for demands of a higherpriority. Previous commitments of supplies are only broken if essentialto meet the requirements of a higher priority demand.

[0011] In a first aspect, the present invention provides a method ofdetermining a promise date for a demand in a business environment basedon a demand produced for the item and a supply structure for fulfillingthe demand, the method comprising the steps of:

[0012] (a) for each supply in the supply structure, determining a plandate, based on existing and planned supplies in the supply structure,from a highest level to a lowest level in the supply structure;

[0013] (b) for each supply in the supply structure, determining anavailable date, based on: i) the availability of each supply in thesupply structure, and ii) the plan date determined in step (a), from thelowest level to the highest level in the supply structure; and

[0014] (c) generating the promise date for the demand based on theavailable date determined in step (b).

[0015] In a second aspect, the present invention provides a system fordetermining a promise date for a demand in a business environment basedon a demand produced for the item and a supply structure for fulfillingthe demand, the system comprising: a data storage means for storing datainformation related to the business environment; and a processing meansfor generating a promise date for the demand for the item, theprocessing means being coupled to the data storage means; wherein theprocessing means requests and retrieves data information related to thebusiness environment from the data storage means, and wherein theprocessing means determines a plan date for each supply in the supplystructure based on existing and planned supplies in the supplystructure, from a highest level to a lowest level in the supplystructure; determines an available date for each supply in the supplystructure based on i) the availability of each supply in the supplystructure, and ii) the plan date determined for each supply, from thelowest-level to the highest-level in the supply structure; and generatesthe promise date for the demand for the item based on the available datedetermined for each supply in the supply structure.

[0016] In a third aspect, the present invention provides acomputer-readable medium having stored thereon, computer-readable andcomputer-executable instructions which, when executed by a processor,cause the processor to perform the steps of:

[0017] (a) for each supply in the supply structure, determining a plandate, based on existing and planned supplies in the supply structure,from a highest level to a lowest level in the supply structure;

[0018] (b) for each supply in the supply structure, determining anavailable date, based on: i) the availability of each supply in thesupply structure, and ii) the plan date determined in step (a), from thelowest level to the highest level in the supply structure; and

[0019] (c) generating the promise date for the demand based on theavailable date determined in step (b).

BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The present invention will now be described in reference to thedrawings, in which:

[0021]FIG. 1 is a block diagram of the planning and execution systemaccording to the present invention;

[0022]FIG. 2 is a block diagram of an exemplary supply structure used bythe present invention;

[0023]FIG. 3 is a block diagram of the processor in FIG. 1 according tothe present invention;

[0024]FIG. 4 is a flowchart of a process for determining a plan date foreach of the supplies in the supply structure according to the presentinvention;

[0025]FIG. 5 is a flowchart of a subsidiary process of FIG. 4 forplanning a new supply for an unfulfilled demand;

[0026]FIG. 6 is a flowchart of a subsidiary process of FIG. 4 fordetermining a plan date for supplies that depend on capacityconstraints;

[0027]FIG. 7 is a flowchart of a process for determining an availabledate for each of the supplies in the supply structure according to thepresent invention;

[0028]FIG. 8 is a flowchart of a subsidiary process of FIG. 7 fordetermining the available date of a supply that requires capacityconstraint according to the present invention; and

[0029]FIG. 9 is a flowchart of a process executed by the full-levelpegging engine shown in FIG. 3.

DETAILED DESCRIPTION OF THE INVENTION

[0030] The invention will be described for the purposes of illustrationonly in connection with certain embodiments; however, it is to beunderstood that other objects and advantages of the present inventionwill be made apparent by the following description of the drawingsaccording to the present invention. While a preferred embodiment isdisclosed, this is not intended to be limiting. Rather, the generalprinciples set forth herein are considered to be merely illustrative ofthe scope of the present invention and it is to be further understoodthat numerous changes may be made without straying from the scope of thepresent invention.

[0031] For the purposes of this document, a promise date is defined aseither a completion date or a delivery date for a particular supply ordemand. As well, a plan date is defined as the due date of a supply. Thedefinition of a supply for an item may be expanded to includesubassemblies or components within a supply structure. Thus, theapplication of the present invention is not limited to fulfilling ademand for the highest level item in a supply structure. It shouldfurther be mentioned that a supply structure may be dependent on one ormore constraints. Constraints may be defined in terms of a capacity or amaterial required to fulfill a demand in a supply structure.

[0032]FIG. 1 is a block diagram of a system 5 that generates promisedates for demands in a business environment where the item has a supplystructure for fulfilling a demand for the item. The system 5 includes adata storage means 10 for storing data relevant to manufacturing,distribution, and supply chain operations such as, but not limited to,current inventories, product structure, supply chain relationships(supplier/consumer locations and relationships), customer demands,purchased supplies, production supplies, item sourcing, orderingpolicies, and lead times. Connected to the data storage means 10 is aprocessor 15 for determining plan dates and available dates in order togenerate a promise date for a requested item. In many cases, certaindata related to the capacity constraint rates and the supply sources fora requested item may be stored in an internal memory, as shown in FIG.3, within the processor 15 rather than within the data storage means 10.

[0033] The processor 15 of the present invention may also be coupled toa user interface 25 and or a subsidiary system interface 20 as shown inFIG. 1. For example, in a supply chain environment the present inventionmay be embodied on a server and connected to other systems via anetwork. The subsidiary system interface 20 would enable another systemto connect with the system processor 15.

[0034] An example of a business environment with a supply structure 85for an item 90, for use with the present invention, is shown in FIG. 2.In FIG. 2, the supply structure 85 contains processes 91A, 91B,components 92A, 92B, 92C, subassemblies 93A, 93B, 93C, and capacityconstraints 94A, 94B, for making the item 90. These processes 91A, 91Bare applied to components 92A, 92B, 92C and to subassemblies 93A, 93Band 93C. In many cases, subassemblies 93A, 93B, 93C are themselves madefrom other subassemblies and components (only the supply structure forsubassembly 93B is shown).

[0035] It is understood that the present invention may provide promisedates for a variety of supply structures, such as, but not limited to, aproject task structure, a business organizational structure, and asupply chain structure.

[0036]FIG. 3 is a block diagram of the processor 15 as shown in FIG. 1.The processor 15 contains three sub-processing units, a planning engine30, an execution engine 35, and a sub-priority system 40, and aninternal memory 45. The processor may also contain a fourthsub-processing unit, known as a full-level pegging engine 50. Theplanning engine 30 determines plan dates for each supply in the supplystructure based on the availability of capacity constraints and existingand planned supplies required to fulfill a demand for a given item. Theexecution engine 35 determines available dates for each supply in thesupply structure based on the availability of supplies, the availabilityof capacity constraints and the plan date of the supplies determined bythe planning engine 30. Finally, the execution engine 35 generates apromise date for the demand based on the determined available dates.

[0037] In FIG. 3, the sub-priority system 40 tracks the sequence inwhich demand commitments are made. Every independent supply and demandassociated with an item has a unique sub-priority value assigned to it.The sub-priority value is normally defined by the sequence in which theindependent supply or demand for the item was requested. The processor15 queues every supply and demand through both planning engine 30 andthe execution engine 35 based on the assigned sub-priority values.

[0038] In a preferred implementation of the sub-priority system 40, theprocessor 15 maintains a data register of the next sub-priority valueassignable to a supply and demand for an item. Whenever a new supply ordemand order for an item is entered into the system, or whenever thepriority of a supply or demand is changed, the next sub-priority valueis assigned to the supply or demand and the register value isincremented to a next sub-priority value. If a supply or demand iscreated and its priority changes, that system generated sub-priorityvalue may be overridden, thus allowing a system user to manage theassigning of sub-priority values directly. Situations where such anoption are implemented are for example in: 1) applications determiningan available date for a supply at a different priority, then deciding torevert to the original priority, and finally retaining the originalsub-priority; and 2) applications determining a preferred supplysequence, such as a separate optimization algorithm, where asub-priority value is assignable to supplies and demands in a preferredsequence.

[0039] Referring now to FIG. 4, a flowchart is shown that details aprocess implemented by the planning engine 30 as in FIG. 3, to determineplan dates for each supply in the supply structure. The process of theplanning engine begins at step 101. In the next step 103, an item to beprocessed is selected. The process proceeds to step 105 where it sorts alist of demands that includes demands for all the items that have anysource that uses a common capacity constraint. Furthermore, in step 105a list of existing supplies, required to produce the item, is sorted.The process then proceeds to step 110 where it selects the first demandin the sorted demand list. In step 115, the process determines if asupply that fulfills the first demand exists. If an existing supply thatfulfills the first demand is unavailable, the process then usesconnector A 116 to proceed to a subsidiary process for planning newsupply, shown in FIG. 5. Once the subsidiary process of FIG. 5 iscomplete, the process follows connector B 117 to return to step 120. Ifa supply exists to satisfy the demand in step 115, then in step 120 aplan date is generated based on the availability of capacityconstraints. In a next step 125, the process determines if this is thelast demand in the demand list for the item. If this is not the lastdemand, the process returns to step 110. Otherwise, the processcontinues in step 130 and determines if all the items have beenprocessed. If all items have not been processed, the process returns tostep 103 and selects another item. If all items have been processed thenthe process continues with connector C 132 to a subsequent process fordetermining available dates shown in FIG. 7.

[0040] To further elaborate on the process in FIG. 4, once it isdetermined that a supply exists to fulfill the demand in step 115, thesupply is allocated to the demand. This allocation is achieved using arunning balance array to track the projected running balance of theinventory for that item. The supplies of the item are allocated todemand in the period in which they are available. The running balancerow is initialized with the current on-hand inventory entered into abalance entry of the array. The process then determines if the supplycan fulfill the demand by removing the current demand from the runningbalance array for the item. If the balance remains positive for all timeperiods, a plan date is generated according to step 120 in FIG. 4, andthe next demand in the demand list is processed according to step 110.When the balance in an array period becomes less than zero, the processfinds a supply to satisfy that negative balance in the first time periodin which the balance becomes negative. If no existing supply can be usedto satisfy this negative balance, then a new supply is planned byfollowing connector A 116 to the subsidiary process in FIG. 5. There isno supply available if the negative balance is before the earliest plandate of all supplies for the item or after the date used of all suppliesfor that item.

[0041]FIG. 5 is a flowchart detailing a subsidiary process for planningnew supply when insufficient supply for fulfilling the demand in step115 is available. The subsidiary process begins from connector A 116. Inthe first step 135, a source for the supply is selected based on the duedate of the demand and the availability of capacity constraints requiredto produce the supply. In the next step 140, the process plans a newsupply for the source that fulfills the demand that was previouslyunavailable. The process follows connector B 117 and returns to step 120in FIG. 4.

[0042] To further elaborate step on 135, a source for supply is selectedbased on the plan date of the supply and the availability of capacityconstraints needed to satisfy the supply. Rules such as source priority,proportional allocation amongst various sources, round-robin allocation,capacity constraint availability, that are known by the skilled artisan,are used to determine the source(s) that is used to satisfy the demand.

[0043] As is generally understood by the skilled artisan, and as isfurther elaborated upon in, “Material Requirements Planning: The New Wayof Life in Production and Inventory Management”, by Joseph A. Orlicky,N.Y.: The McGraw-Hill Companies, 1974, the lot sizing rule by definitionrequires a minimum lot size and multiple quantities of the lot size todetermine the quantity of a supply to plan.

[0044] To further elaborate on step 140 in FIG. 5, the process selectsthe highest priority source(s) for that item that is active for the dateof the negative balance and has capacity constraint available in thatperiod to satisfy at least the minimum order quantity. If no sourcesatisfies these conditions, the sources for earlier dates are tested, upto the earliest planning date of all sources. Allocation rules have beendefined to allocate new supply to one or more of the usable sources. Foreach allocated source, a planned supply for the demand is created. Thequantity of each planned supply is determined as the lesser of the lotsized quantity less than or equal to the amount of capacity constraintthat remains unused, and the quantity found by applying lot sizing rulesto the negative balance quantity. The plan date is the date for whichthe source availability is being tested. The priority and sub-priorityfor the planned supply are copied from the priority and sub-priority ofthe current demand. Add the quantity of the planned supply to its plandate period and to all subsequent periods in the balance array. If anegative balance persists, the process returns to step 135 in FIG. 5 andcontinues planning new supply until the balance in the period is nolonger negative.

[0045] If all sources have been exhausted for the negative balance dateand all previous periods, the demand cannot be satisfied on time. Thecurrent negative balance is set to zero, and the process tests the nextperiod. If its balance is greater than or equal to zero for a givenperiod, then unused supply must exist in that period and no new supplyneeds to be planned for the period. The process continues checking thebalance array for subsequent periods. If the balance is negative, theprocess repeats the previous steps, starting from seeking new supply forthat period. The previous periods are not checked for capacityconstraint availability.

[0046] If insufficient supply can be planned for the period, continuewith the process from setting the current negative balance to zero.Finally, if negative balances persist and no more supply can be plannedin any period, add the amount of the negative balance to the current andall subsequent periods in the array. The process continues to processthe remaining demands in the list, i.e. demands for different itemscontinue to be processed.

[0047] If a supply exists on the list of supplies for the item that hasan earliest plan date on or before the date of the first negativebalance and whose date used is after the date of the negative balance,then the first such supply is rescheduled to the current balance arrayperiod. Rescheduling consists of:

[0048] (1) setting a plan date used to the current array date,

[0049] (2) adding the supply's quantity to the current array balance andto each array balance between the current array date and the supply'scurrent date used

[0050] (3) if the supply has any capacity constraints allocated to it,relinquishing the capacity constraint it had used at its date used andre-allocating capacity constraint at the current array balance date

[0051] (4) recalculating the supply's start date.

[0052] Once the supply has been rescheduled, the process again checksfor negative array balances, starting with the current period. If anegative balance is found, then the process of FIG. 4 continues to seeka supply to satisfy the negative balance.

[0053] The decision at step 125 in FIG. 4, causes all demands to beprocessed from the highest level to the lowest level in the supplystructure.

[0054]FIG. 6 is a flowchart of a subsidiary process of step 140, of FIG.5, which determines a plan date for a supply that depends on capacityconstraints. The process begins at step 150. In a first step 155, theprocess determines whether some quantity of each of the capacityconstraints is available in the period required by the demand. If somequantity of each of the capacity constraints is available in the periodof the demand, the process proceeds to step 160. According to step 160,the process determines a plan date for the date of the demand. Theprocess then proceeds to decision step 165, where it determines if allthe capacity constraints for the supply have been satisfied. If all thecapacity constraints for the supply have been satisfied in step 165, theprocess ends with step 170. Otherwise, according to step 155, if somequantity of at least one of the capacity constraints is not available inthe period of the demand the process proceeds to step 175. Also, if allthe capacity constraints for the supply have not been satisfied indecision step 165, the process proceeds to step 175. According to step175, the process determines if some quantity of each of the capacityconstraints is available in an earlier period. If some quantity of eachof the capacity constraints is available in an earlier period, theprocess proceeds to step 180. According to step 180, the processdetermines a plan date based on the available date of the capacityconstraints. The process then returns to decision step 165. Otherwise,in step 175, if some quantity of at least one of the capacityconstraints is not available in an earlier period, the process proceedsto step 185. In step 185, the process plans the supply such that it willmeet the plan date and allocates the capacity constraint required tofulfill the supply in subsequent time periods. The process then returnsto step 170, where the process is finally ended.

[0055] It should be further mentioned that in steps 120, 135, 155 and175 in FIGS. 4, 5 and 6, where a source has one or more active capacityconstraints, the planning engine 30 tracks the amount of each capacityconstraint that is used by each supply. This tracking function isaccomplished using a data array of unused capacity constraints for eachactive capacity constraint. The array is initialized with the amount ofthe capacity constraint that is available in each capacity constraintperiod. The cumulative maximum value for the capacity constraint is alsotracked and stored in the array.

[0056] When allocating a capacity constraint to a supply order anddetermining the start date of an existing supply order, the capacityconstraint is allocated first from the cumulative maximum value. If ithas sufficient quantity available, then the capacity constraint isallocated from the data array. If insufficient capacity constraint isavailable in the cumulative maximum value for the capacity constraint,then the capacity constraint allocation for the supply is stopped andthe supply is processed according to the capacity constraint that hasbeen allocated to it. Provided sufficient cumulative maximum value forthe capacity constraints remains, then the capacity constraint isallocated for the supply plan date, and then the unused capacityconstraint from earlier periods is used. If there is not enough unusedcapacity constraint available in earlier periods, the capacityconstraint is allocated from subsequent periods. The supply startdate—where processing begins for the given supply—is then calculated byapplying a lead-time to the earlier of the supply plan date or the dateof the earliest capacity constraint allocated to the given supply.Several relationships between the period for which capacity constraintis allocated and the supply plan date are possible, including allocatinga capacity constraint on the plan date itself, or allocating a capacityconstraint on the plan date adjusted by either the shipping time or thenormal production lead time.

[0057] For new planned supply, it is understood that a supply is plannedfor each period in which capacity constraint is allocated. The plan datefor a planned supply is always on or before its demand date, even if thecapacity constraint allocated to it is after that date. If a source islimited by more than one active capacity constraint, there must beenough unused capacity constraint for each of the capacity constraintsin a period for the lesser of one minimum order quantity and theremaining quantity of the supply that has not had capacity constraintallocated to it. If that minimum amount of each capacity constraint isnot available in a period, then none of the unused capacity constraintin that period will be used for that supply.

[0058] Referring now to FIG. 7, the flowchart details a process of theexecution engine 35, as shown in FIG. 3, for determining an availabledate for each supply in a supply structure. The process begins fromconnector C 132. In a first step 200, the process determines anavailable date for the lowest level supplies for the item. The availabledate of lowest level supplies is determined by their plan date, orderstatus, source lead time, and capacity constraint requirements accordingto the following rules:

[0059] a) for a supply with no capacity constraints, the available dateis the later of the run date plus lead time and plan date for a supplythat has not been started, or the later of the run date and plan datefor a supply that has been started;

[0060] b) for a supply with one or more capacity constraints, theavailable date is found by starting to seek capacity constraint in theperiod determined by the initial available date in the paragraph above.The available date is based on the date of the last capacity constraintthat is allocated to the supply to satisfy all its capacity constraintrequirements. The available date is also adjusted for shipping timeand/or the normal production lead-time.

[0061] In FIG. 7, the execution engine then proceeds to step 205, whereit generates a sorted list for all the supplies for each item. Thesupply list is sorted by available date, priority, sub-priority and plandate. According to step 210, two demand lists are created. The firstdemand list is sorted by plan date, priority and sub-priority. Thesecond demand list is sorted by priority, sub-priority and plan date.The execution engine in step 215 then allocates supply to demand. In apreferred embodiment of the invention, supplies are allocated so thatall demands are satisfied for their plan dates. When an on-timeallocation cannot be achieved, the supplies are allocated so that thedemands with higher priority and sub-priority are satisfied on timewhile those of a lower priority and sub-priority are satisfied laterthan their plan dates.

[0062] The allocation of supply to demand in step 215 proceeds bytracking the unallocated portion of each supply and demand. For eachallocation, a supply-to-demand allocation record is created in theinternal memory 45 shown in FIG. 3. The supply-to-demand allocationrecord consists of a supply reference value, a demand reference value, adate the supply is allocated, and a quantity of supply and demand thatis allocated. Reference values are also provided when demand does notexist, representing extra supply, or when supply does not exist, torepresent unsatisfied demand.

[0063] There are two variants of the supply-to-demand allocation processof step 215, allocating excess supply by earliest possible date orallocating excess supply by latest possible date. Allocating excesssupply by earliest date preserves the ability to use the excess supplyto satisfy demands that have not yet been received. Allocating excesssupply by latest date provides available dates that are at the earliestpossible date for each of the existing demands.

[0064] The first step in the supply-to-demand allocation process of step215 is to determine whether there is enough supply to satisfy all thedemands in the demand list. If the total demand for the item exceeds itstotal supply, the extra demand is allocated from the bottom end of thesecond demand list. That is, the lowest priority demand with the latestplan date is not allocated to a supply and the resultingsupply-to-demand allocation record has a future date.

[0065] The next step in the supply-to-demand allocation process of step215 is to determine whether there is more supply than is required tosatisfy the demand. If the remaining demand is less than the totalsupply, there is excess supply. If there is excess supply and if theprocess is allocating excess supply at the earliest date possible, theprocess will track the quantity of the excess supply. Otherwise, if theprocess is allocating excess supply at the latest date possible, thesupply at the bottom end of the sorted supply list is allocated to theexcess supply and the tracked excess supply quantity is then treated asequal to zero. The resulting supply-to-demand allocation records containthe available date of each excess supply that has been allocated.

[0066] The sorted list of supplies that have not been allocated is thenprocessed, from the bottom to the top, allocating supplies to demands orto excess supply. When the supply is allocated to the demand, the dateof the resulting supply-to-demand allocation record is the availabledate of the supply being allocated. If the available date of the lastsupply with unallocated quantity is on or before the plan date of thelast demand with unallocated quantity in the by-date list, then thesupply is on time or early for that demand. The lesser amount of theunallocated supply quantity and of the unallocated demand quantity isallocated to the demand. If unallocated supply remains, the allocationprocess continues by comparing the supply available date to the plandate of the previous demand with unallocated quantity in the firstdemand list. When the supply has been fully allocated, the allocationprocess selects the previous supply in the supply list and continuescomparing the supply available date to the demand plan date.

[0067] If the available date of the last supply with unallocatedquantity is after the plan date of the last demand with unallocatedquantity in the by-date list, then the supply is too late to satisfy anydemand on time. The first step is to check whether any previouslytracked excess supply remains. If tracked excess supply remains, thelesser amount of the remaining excess supply and the unallocated supplyquantity is allocated to excess supply. If there is no excess supply,the last remaining demand in the second demand list will be late. Theallocation process then allocates the lesser of the unallocated supplyquantity and the unallocated demand quantity for the last remainingdemand in the second list. If any unallocated quantity of the supplyremains, the allocation process continues to allocate a previous demandin the second demand list. When all the supply has been allocated, theallocation process selects the previous supply in the supply list andcontinues comparing the supply available date to the plan date ofdemands in the first demand list.

[0068] After allocating the supply to the demand in step 215, theprocess of FIG. 7 continues with step 220. In step 220, the availabledate is propagated to the next level of the supply structure and thesteps are repeated through decision step 225 until the highest level ofthe supply structure is reached. The process then proceeds to step 230,where the available date is propagated to the demands for items. In step230, when the highest level of the supply structure is reached, thepromise date for each demand is determined based on the available datesdetermined for the supplies.

[0069]FIG. 8 is a flowchart that details a subsidiary process of step220, in FIG. 7, where available dates are determined for supplies withdependent requirements. The process begins at step 300 and is followedby step 305, where the available date of materials required to fulfillthe lowest level supplies are checked. The process then proceeds to step310 where it determines, for capacity constraints that are required tosatisfy the next level supply, availability on or after the materialavailable date. In a next step 315, the process calculates the availabledates for the next level supply based on the capacity constraintsselected.

[0070] To further elaborate on the steps taken in the process of FIG. 8,in step 305, supplies are allocated to the dependent requirements asdescribed in step 215 of FIG. 7. The component availability is thencarried up to the supply itself by applying the effective lead timebetween the component need date and the supply start date. The result isthe supply material start date. If no capacity constraint is requiredfor the supply, then the supply available date is calculated from thesupply material start date by applying production lead time. If capacityconstraint is required, it is first allocated from the cumulativemaximum constraint quantity for the required capacity constraints. Ifthere is sufficient maximum constraint, the later of material start andthe supply's calculated start date is then used as the first date toseek capacity constraint. If insufficient capacity constraint issimultaneously available for all the capacity constraints applicable tothe supply, then the amount of capacity constraint required for the lotsize portion of that supply is allocated and capacity constraint issought in the next capacity constraint period. This process is continueduntil either all required capacity constraint is allocated or there isno more capacity constraint available for at least one of the neededcapacity constraints. Assuming that the capacity constraint requirementcan be satisfied, then the date of the last capacity constraintallocated is used to find the available date of the supply.

[0071] As discussed with reference to FIG. 3, the system of the presentinvention may include a fourth sub-processing unit, the full-levelpegging engine 50, for executing a process known as full-level pegging.The full-level pegging process is executed at the highest level item.Essentially, the process determines the links between independentdemands and the supplies that satisfy them, as defined by thesupply-to-demand allocation record(s) created in step 215.

[0072]FIG. 9 shows a flowchart that details a process by the full-levelpegging engine 50 according to the present invention. Full-level peggingis a process that logically follows the end of the execution engineprocess in step 235. The process begins at step 240 and is followed bystep 245, where the process retrieves the supply-to-demand allocationsrecorded in step 215 of FIG. 7. The process proceeds to step 250 whereat least one peg record is created for each link from the highest leveldemand to the lowest level demand. In a next step 255, the processtracks the supply allocated to the demand as a path of links. Theprocess then proceeds to step 260 where a record for each path of linksis maintained. The process ends at step 265.

[0073] On an aside, any excess supply at a particular level is treatedas a highest level demand, as if it were independent demand. At eachsubsequent level, the earliest highest level full-level peg record, fora demand in the supply/demand allocation record, is assigned to thesupply. Again, any excess supply is treated as the start of anotherfull-level peg demand. The process is continued until all supplies havebeen tied to highest level demand or excess supply.

[0074] It should be understood that the preferred embodiments mentionedhere are merely illustrative of the present invention. Numerousvariations in design and use of the present invention may becontemplated in view of the following claims without straying from theintended scope and field of the invention herein disclosed.

Having thus described the invention, what is claimed as new and securedby Letters Patent is:
 1. A method of determining a promise date for ademand in a business environment based on a demand produced for an itemand a supply structure for fulfilling the demand, the method comprisingsteps: (a) for each supply in the supply structure, determining a plandate, based on existing and planned supply in the supply structure, froma highest level to a lowest level in the supply structure; (b) for eachsupply in the supply structure, determining an available date, based on:i) the availability of each supply in the supply structure, and ii) theplan date determined in step (a), from the lowest level to the highestlevel in the supply structure; and (c) generating the promise date forthe demand based on the available date determined in step (b).
 2. Themethod according to claim 1, wherein in step (a) the plan date isdetermined based on the availability of at least one capacity constraintrequired to fulfill each supply.
 3. The method according to claim 1,wherein in step (b) the available date is determined based on theavailability of capacity constraints required to fulfill each supply. 4.The method according to claim 1, wherein the supply structure isselected from the group consisting of: a product structure, asupply-chain structure, a project structure, and an organizationalstructure.
 5. The method according to claim 2, wherein the supplystructure is selected from the group consisting of: a product structure,a supply-chain structure, a project structure, and an organizationalstructure.
 6. The method according to claim 1, further including thestep of, prior to step (a), assigning a priority value to the demand forthe item.
 7. The method according to claim 2, further including the stepof, prior to step (a), assigning a priority value to the demand for theitem.
 8. The method according to claim 3, further including the step of,prior to step (a), assigning a priority value to the demand for theitem.
 9. The method according to claim 1, wherein step (a) furthercomprises subsequent steps: (a1) generating a demand list and a supplylist for fulfilling the demand for the item; (a2) for the first demandin the demand list, determining if a supply for fulfilling the demandexists; (a3) if a supply for fulfilling the demand exists, determiningthe plan date for the supply as in step (a); and (a4) if a supply forfulfilling the demand does not exist, planning a new supply forfulfilling the demand and determining the plan date for the supply as instep (a) wherein the steps (a2) through (a4) are executed for eachdemand in the demand list.
 10. The method according to claim 2, whereinstep (a) further comprises subsequent steps: (a1) generating a demandlist and a supply list for fulfilling the demand for the item; (a2) forthe first demand in the demand list, determining if a supply forfulfilling the demand exists; (a3) if a supply for fulfilling the demandexists, determining the plan date for the supply as in step (a); and(a4) if a supply for fulfilling the demand does not exist, planning anew supply for fulfilling the demand and determining the plan date forthe supply as in step (a) wherein the steps (a2) through (a4) areexecuted for each demand in the demand list.
 11. The method according toclaim 3, wherein step (a) further comprises subsequent steps: (a1)generating a demand list and a supply list for fulfilling the demand forthe item; (a2) for the first demand in the demand list, determining if asupply for fulfilling the demand exists; (a3) if a supply for fulfillingthe demand exists, determining the plan date for the supply as in step(a); and (a4) if a supply for fulfilling the demand does not exist,planning a new supply for fulfilling the demand and determining the plandate for the supply as in step (a) wherein the steps (a2) through (a4)are executed for each demand in the demand list.
 12. The methodaccording to claim 1, wherein step (b) further comprises subsequentsteps: (b1) for each item in the supply structure, sorting a supply listby the available date; (b2) for each item in the supply structure,sorting a demand list by the plan date of the demand; (b3) allocatingeach supply to each demand; and (b4) propagating the available date fromthe lowest level to a next lowest level in the supply structure toprovide a next lowest level available date; wherein steps (b 1) through(b4) are executed for each item in the supply structure from the lowestlevel to the highest level in the supply structure.
 13. The methodaccording to claim 2, wherein step (b) further comprises subsequentsteps: (b1) for each item in the supply structure, sorting a supply listby the available date; (b2) for each item in the supply structure,sorting a demand list by the plan date of the demand; (b3) allocatingeach supply to each demand; and (b4) propagating the available date fromthe lowest level to a next lowest level in the supply structure toprovide a next lowest level available date; wherein steps (b1) through(b4) are executed for each item in the supply structure from the lowestlevel to the highest level in the supply structure.
 14. The methodaccording to claim 3, wherein step (b) further comprises subsequentsteps: (b1) for each item in the supply structure, sorting a supply listby the available date; (b2) for each item in the supply structure,sorting a demand list by the plan date of the demand; (b3) allocatingeach supply to each demand; and (b4) propagating the available date fromthe lowest level to a next lowest level in the supply structure toprovide a next lowest level available date; wherein steps (b1) through(b4) are executed for each item in the supply structure from the lowestlevel to the highest level in the supply structure.
 15. The methodaccording to claim 12, further including the step of, prior to step(b4), recording the allocation of each supply to the demand.
 16. Themethod according to claim 13, further including the step of, prior tostep (b4), recording the allocation of each supply to the demand. 17.The method according to claim 14, further including the step of, priorto step (b4), recording the allocation of each supply to the demand. 18.The method according to claim 12, wherein, in step (b3), allocating eachsupply to the demand is based on the plan date for each demand
 19. Themethod according to claim 13, wherein, in step (b3), allocating eachsupply to the demand is based on the plan date for each demand.
 20. Themethod according to claim 14, wherein, in step (b3), allocating eachsupply to the demand is based on the plan date for each demand.
 21. Themethod according to claim 12, wherein, in step (b3), determining if thedemand is fulfilled by the plan date; for a demand fulfilled by the plandate, allocating each supply to the demand based on the plan date; andfor a demand not fulfilled by the plan date, allocating each supply tothe demand based on the priority value assigned to the demand.
 22. Themethod according to claim 13, wherein, in step (b3), determining if thedemand is fulfilled by the plan date; for a demand fulfilled by the plandate, allocating each supply to the demand based on the plan date; andfor a demand not fulfilled by the plan date, allocating each supply tothe demand based on the priority value assigned to the demand.
 23. Themethod according to claim 14, wherein, in step (b3), determining if thedemand is fulfilled by the plan date; for a demand fulfilled by the plandate, allocating each supply to the demand based on the plan date; andfor a demand not fulfilled by the plan date, allocating each supply tothe demand based on the priority value assigned to the demand.
 24. Themethod according to claim 2, wherein the availability of the at leastone capacity constraint is time-phased per period.
 25. The methodaccording to claim 3, wherein the availability of the at least onecapacity constraint is time-phased per period.
 26. The method accordingto claim 2, wherein the at least one capacity constraint has anavailability defined as a rate per period.
 27. The method according toclaim 3, wherein the at least one capacity constraint has anavailability defined as a rate per period.
 28. The method according toclaim 24, wherein the at least one capacity constraint has anavailability defined as a rate per period.
 29. The method according toclaim 25, wherein the at least one capacity constraint has anavailability defined as a rate per period.
 30. The method according toclaim 2, wherein the availability of the at least one capacityconstraint is time-phased and has an availability defined as a rate perperiod.
 31. The method according to claim 3, wherein the availability ofthe at least one capacity constraint is time-phased and has anavailability defined as a rate per period.
 32. The method according toclaim 24, wherein the availability of the at least one capacityconstraint is time-phased and has an availability defined as a rate perperiod.
 33. The method according to claim 25, wherein the availabilityof the at least one capacity constraint is time-phased and has anavailability defined as a rate per period.
 34. The method according toclaim 26, wherein the availability of the at least one capacityconstraint is time-phased and has an availability defined as a rate perperiod.
 35. The method according to claim 27, wherein the availabilityof the at least one capacity constraint is time-phased and has anavailability defined as a rate per period.
 36. The method according toclaim 2, wherein at least one capacity constraint has a cumulativemaximum value.
 37. The method according to claim 3, wherein at least onecapacity constraint has a cumulative maximum value.
 38. The methodaccording to claim 24, wherein at least one capacity constraint has acumulative maximum value.
 39. The method according to claim 25, whereinat least one capacity constraint has a cumulative maximum value.
 40. Themethod according to claim 26, wherein at least one capacity constrainthas a cumulative maximum value.
 41. The method according to claim 27,wherein at least one capacity constraint has a cumulative maximum value.42. The method according to claim 30, wherein at least one capacityconstraint has a cumulative maximum value.
 43. The method according toclaim 31, wherein at least one capacity constraint has a cumulativemaximum value.
 44. The method according to claim 1, wherein the eachsupply in the supply structure has a plurality of sources for fulfillingthe supply.
 45. The method according to claim 2, wherein the each supplyin the supply structure has a plurality of sources for fulfilling thesupply.
 46. The method according to claim 3, wherein the each supply inthe supply structure has a plurality of sources for fulfilling thesupply.
 47. The method according to claim 1, wherein the method isrepeated for a next item, and wherein the item is a plurality of items.48. The method according to claim 2, wherein the method is repeated fora next item, and wherein the item is a plurality of items.
 49. Themethod according to claim 3, wherein the method is repeated for a nextitem, and wherein the item is a plurality of items.
 50. The methodaccording to claim 47, wherein a priority value is assigned to eachsupply and demand for each item of the plurality of items.
 51. Themethod according to claim 48, wherein a priority value is assigned toeach supply and demand for each item of the plurality of items.
 52. Themethod according to claim 49, wherein a priority value is assigned toeach supply and demand for each item of the plurality of items.
 53. Themethod according to claim 47, further including the step of, prior tostep (a), queuing the plurality of items according to a sub-priorityvalue assigned to each supply and each demand for the item, wherein thesub-priority value is defined by the sequence in which each supply andeach demand for the item was requested.
 54. The method according toclaim 48, further including the step of, prior to step (a), queuing theplurality of demands according to a sub-priority value assigned to eachsupply and each demand for the item, wherein the sub-priority value isdefined by the sequence in which each supply and each demand for theitem was requested.
 55. The method according to claim 49, furtherincluding the step of, prior to step (a), queuing the plurality ofdemands according to a sub-priority value assigned to each supply andeach demand for the item, wherein the sub-priority value is defined bythe sequence in which each supply and each demand for the item wasrequested.
 56. The method according to claim 1, wherein, following step(c), further comprising the steps of: (d1) retrieving the allocationrecord of each supply; (d2) providing at least one peg record for eachlink determined from the highest level demand to a next highest demand;(d3) tracking each supply allocated to the demand, in step (d1), as apath of links, from the highest level to the lowest level in the supplystructure; and (d4) maintaining a record for the path of linksdetermined in step (d3); wherein steps (d2) is repeated for the highestlevel to the lowest level of the supply structure.
 57. The methodaccording to claim 2, wherein, following step (c), further comprisingthe steps of: (d1) retrieving the allocation record of each supply; (d2)providing at least one peg record for each link determined from thehighest level demand to a next highest demand; (d3) tracking each supplyallocated to the demand, in step (dl), as a path of links, from thehighest level to the lowest level in the supply structure; and (d4)maintaining a record for the path of links determined in step (d3);wherein steps (d2) is repeated for the highest level to the lowest levelof the supply structure.
 58. The method according to claim 3, wherein,following step (c), further comprising the steps of: (d1) retrieving theallocation record of each supply; (d2) providing at least one peg recordfor each link determined from the highest level demand to a next highestdemand; (d3) tracking each supply allocated to the demand, in step (d1),as a path of links, from the highest level to the lowest level in thesupply structure; and (d4) maintaining a record for the path of linksdetermined in step (d3); wherein steps (d2) is repeated for the highestlevel to the lowest level of the supply structure.
 59. A system fordetermining a promise date for a demand in a business environment basedon a demand produced for the item and a supply structure for fulfillingthe demand, the system comprising: a data storage means for storing datainformation related to the business environment; and a processing meansfor generating a promise date for the demand, the processing means beingcoupled to the data storage means; whereby the processing means requestsand retrieves data information related to the business environment fromthe data storage means, and whereby the processing means determines aplan date for each supply in the supply structure based on an existingand planned supply in the supply structure, from a highest-level to alowest-level in the supply structure, and determines an available datefor each supply in the supply structure based on i) the availability ofeach supply in the supply structure, and ii) the plan date determinedfor each supply, from the lowest-level to the highest-level in thesupply structure, and generates the promise date for the demand for theitem based on the available date determined for each supply in thesupply structure.
 60. The system according to claim 59, wherein the plandate is determined based on the availability of at least one capacityconstraint required to fulfill a supply.
 61. The system according toclaim 59, wherein the available date is determined based on theavailability of capacity constraints required to fulfill the supply. 62.The system according to claim 60, wherein the available date isdetermined based on the availability of capacity constraints required tofulfill the supply
 63. The system according to claim 59, wherein thesupply structure is selected from the group consisting of: a productstructure, supply-chain structure, project-task structure, and anorganizational structure.
 64. The system according to claim 59, whereinthe processing means assigns a priority value to the demand produced forthe item.
 65. The system according to claim 60, wherein the processingmeans assigns a priority value to the demand produced for the item. 66.The system according to claim 61, wherein the processing means assigns apriority value to the demand produced for the item.
 67. The systemaccording to claim 59, wherein the processing means determines theavailable date for each supply in the supply structure based on thepriority value assigned to the demand.
 68. The system according to claim60, wherein the processing means determines the available date for eachsupply in the supply structure based on the priority value assigned tothe demand.
 69. The system according to claim 61, wherein the processingmeans determines the available date for each supply in the supplystructure based on the priority value assigned to the demand.
 70. Thesystem according to claim 59, wherein the data information is memoryresident.
 71. The system according to claim 60, wherein the datainformation is memory resident.
 72. The system according to claim 61,wherein the data information is memory resident.
 73. The systemaccording to claim 59, wherein the data storage means includes means forstoring a plurality of versions of the data information.
 74. The systemaccording to claim 60, wherein the data storage means includes means forstoring a plurality of versions of the data information.
 75. The systemaccording to claim 61, wherein the data storage means includes means forstoring a plurality of versions of the data information.
 76. The systemaccording to claim 59, wherein the processing means and the data storagemeans are coupled to a plurality of data storage means that storeinformation related to the business environment.
 77. The systemaccording to claim 59, wherein the processing means runs continuously.78. The system according to claim 59, wherein the processing meansrequests and retrieves data only when the information related to thebusiness environment has been updated.
 79. A computer-readable mediumhaving stored thereon, computer-readable and computer-executableinstructions which, when executed by a processor, cause the processor toperform the steps of: (a) for each supply in the supply structure,determining a plan date, based on an existing and planned supply in thesupply structure, from a highest level to a lowest level in the supplystructure; (b) for each supply in the supply structure, determining anavailable date, based on: i) the availability of each supply in thesupply structure, and ii) the plan date determined in step (a), from thelowest level to the highest level in the supply structure; and (c)generating the promise date for the demand based on the available datedetermined in step (b).
 80. The computer-readable medium according toclaim 79, further containing computer-readable and computer executableinstructions, wherein in step (a) the plan date is determined based onthe availability of at least one capacity constraint required to fulfillthe supply.
 81. The computer-readable medium according to claim 79,further containing computer-readable and computer executableinstructions, wherein in step (b) the available date is determined basedon the availability of at least one capacity constraint required tofulfill the supply.
 82. The computer-readable medium according to claim80, further containing computer-readable and computer executableinstructions, wherein in step (b) the available date is determined basedon the availability of at least one capacity constraint required tofulfill the supply.
 83. The computer-readable medium according to claim79, further containing computer-readable and computer executableinstructions, wherein the supply structure is selected from the groupconsisting of: a product structure, a supply-chain structure, a projectstructure, and an organizational structure.
 84. The computer-readablemedium according to claim 80, further containing computer-readable andcomputer executable instructions, wherein the supply structure isselected from the group consisting of: a product structure, asupply-chain structure, a project structure, and an organizationalstructure
 85. The computer-readable medium according to claim 79,further containing computer-readable and computer executableinstructions, wherein, further including the step of, prior to step (a),assigning a priority value to the demand for the item.
 86. Thecomputer-readable medium according to claim 80, further containingcomputer-readable and computer executable instructions, wherein, furtherincluding the step of, prior to step (a), assigning a priority value tothe demand for the item.
 87. The computer-readable medium according toclaim 81, further containing computer-readable and computer executableinstructions, wherein, further including the step of, prior to step (a),assigning a priority value to the demand for the item.
 88. Thecomputer-readable medium according to claim 82, further containingcomputer-readable and computer executable instructions, wherein, furtherincluding the step of, prior to step (a), assigning a priority value tothe demand for the item.
 89. The computer-readable medium according toclaim 79 further containing computer-readable and computer executableinstructions, wherein step (a) further comprises subsequent steps: (a1)generating a demand list and a supply list for fulfilling the demand forthe item; (a2) for the first demand in the demand list, determining if asupply for fulfilling the demand exists; and (a3) if a supply forfulfilling the demand exists, determining the plan date for the supplyas in step (a); and (a4) if a supply for fulfilling the demand does notexist, planning a new supply for fulfilling the demand and determiningthe plan date for the supply as in step (a) wherein the steps (a2)through (a4) are executed for each demand in the demand list.
 90. Thecomputer-readable medium according to claim 80 further containingcomputer-readable and computer executable instructions, wherein step (a)further comprises subsequent steps: (a1) generating a demand list and asupply list for fulfilling the demand for the item; (a2) for the firstdemand in the demand list, determining if a supply for fulfilling thedemand exists; and (a3) if a supply for fulfilling the demand exists,determining the plan date for the supply as in step (a); and (a4) if asupply for fulfilling the demand does not exist, planning a new supplyfor fulfilling the demand and determining the plan date for the supplyas in step (a) wherein the steps (a2) through (a4) are executed for eachdemand in the demand list.
 91. The computer-readable medium according toclaim 81 further containing computer-readable and computer executableinstructions, wherein step (a) further comprises subsequent steps: (a1)generating a demand list and a supply list for fulfilling the demand forthe item; (a2) for the first demand in the demand list, determining if asupply for fulfilling the demand exists; and (a3) if a supply forfulfilling the demand exists, determining the plan date for the supplyas in step (a); and (a4) if a supply for fulfilling the demand does notexist, planning a new supply for fulfilling the demand and determiningthe plan date for the supply as in step (a) wherein the steps (a2)through (a4) are executed for each demand in the demand list.
 92. Thecomputer-readable medium according to claim 82 further containingcomputer-readable and computer executable instructions, wherein step (a)further comprises subsequent steps: (a1) generating a demand list and asupply list for fulfilling the demand for the item; (a2) for the firstdemand in the demand list, determining if a supply for fulfilling thedemand exists; and (a3) if a supply for fulfilling the demand exists,determining the plan date for the supply as in step (a); and (a4) if asupply for fulfilling the demand does not exist, planning a new supplyfor fulfilling the demand and determining the plan date for the supplyas in step (a) wherein the steps (a2) through (a4) are executed for eachdemand in the demand list.
 93. The computer-readable medium according toclaim 79 further containing computer-readable and computer executableinstructions, wherein step (b) further comprises subsequent steps: (b1)for each item in the supply structure, sorting a supply list by theavailable date; (b2) for each item in the supply structure, sorting ademand list by the plan date of the demand; (b3) allocating the eachsupply to each demand; and (b4) propagating the available date from thelowest level to a next lowest level in the supply structure to provide anext lowest level available date; wherein steps (b1) through (b4) areexecuted for each item in the supply structure from the lowest level tothe highest level in the supply structure.
 94. The computer-readablemedium according to claim 80 further containing computer-readable andcomputer executable instructions, wherein step (b) further comprisessubsequent steps: (b1) for each item in the supply structure, sorting asupply list by the available date; (b2) for each item in the supplystructure, sorting a demand list by the plan date of the demand; (b3)allocating each supply to each demand; and (b4) propagating theavailable date from the lowest level to a next lowest level in thesupply structure to provide a next lowest level available date; whereinsteps (b1) through (b4) are executed for each item in the supplystructure from the lowest level to the highest level in the supplystructure.
 95. The computer-readable medium according to claim 81further containing computer-readable and computer executableinstructions, wherein step (b) further comprises subsequent steps: (b1)for each item in the supply structure, sorting a supply list by theavailable date; (b2) for each item in the supply structure, sorting ademand list by the plan date of the demand; (b3) allocating the eachsupply to each demand; and (b4) propagating the available date from thelowest level to a next lowest level in the supply structure to provide anext lowest level available date; wherein steps (b1) through (b4) areexecuted for each item in the supply structure from the lowest level tothe highest level in the supply structure.
 96. The computer-readablemedium according to claim 82 further containing computer-readable andcomputer executable instructions, wherein step (b) further comprisessubsequent steps: (b1) for each item in the supply structure, sorting asupply list by the available date; (b2) for each item in the supplystructure, sorting a demand list by the plan date of the demand; (b3)allocating the each supply to each demand; and (b4) propagating theavailable date from the lowest level to a next lowest level in thesupply structure to provide a next lowest level available date; whereinsteps (b1) through (b4) are executed for each item in the supplystructure from the lowest level to the highest level in the supplystructure.
 97. The computer-readable medium according to claim 93further containing computer-readable and computer executableinstructions, further including the step of, prior to step (b4),recording the allocation of the each supply to the demand.
 98. Thecomputer-readable medium according to claim 94 further containingcomputer-readable and computer executable instructions, furtherincluding the step of, prior to step (b4), recording the allocation ofthe each supply to the demand.
 99. The computer-readable mediumaccording to claim 95 further containing computer-readable and computerexecutable instructions, further including the step of, prior to step(b4), recording the allocation of the each supply to the demand. 100.The computer-readable medium according to claim 96 further containingcomputer-readable and computer executable instructions, furtherincluding the step of, prior to step (b4), recording the allocation ofthe each supply to the demand.
 101. The computer-readable mediumaccording to claim 93 further containing computer-readable and computerexecutable instructions, wherein, in step (b3), allocating each supplyto the demand is based on the plan date for each demand.
 102. Thecomputer-readable medium according to claim 94 further containingcomputer-readable and computer executable instructions, wherein, in step(b3), allocating each supply to the demand is based on the plan date foreach demand.
 103. The computer-readable medium according to claim 95further containing computer-readable and computer executableinstructions, wherein, in step (b3), allocating each supply to thedemand is based on the plan date for each demand.
 104. Thecomputer-readable medium according to claim 96 further containingcomputer-readable and computer executable instructions, wherein, in step(b3), allocating each supply to the demand is based on the plan date foreach demand.
 105. The computer-readable medium according to claim 93further containing computer-readable and computer executableinstructions, wherein, in step (b3), determining if the demand isfulfilled by the plan date; for a demand fulfilled by the plan date,allocating each supply to the demand based on the plan date; and for ademand not fulfilled by the plan date, allocating each supply to thedemand based on the priority value assigned to the demand.
 106. Thecomputer-readable medium according to claim 94 further containingcomputer-readable and computer executable instructions, wherein, in step(b3), determining if the demand is fulfilled by the plan date; for ademand fulfilled by the plan date, allocating each supply to the demandbased on the plan date; and for a demand not fulfilled by the plan date,allocating each supply to the demand based on the priority valueassigned to the demand.
 107. The computer-readable medium according toclaim 95 further containing computer-readable and computer executableinstructions, wherein, in step (b3), determining if the demand isfulfilled by the plan date; for a demand fulfilled by the plan date,allocating each supply to the demand based on the plan date; and for ademand not fulfilled by the plan date, allocating each supply to thedemand based on the priority value assigned to the demand.
 108. Thecomputer-readable medium according to claim 96 further containingcomputer-readable and computer executable instructions, determining ifthe demand is fulfilled by the plan date; for a demand fulfilled by theplan date, allocating each supply to the demand based on the plan date;and for a demand not fulfilled by the plan date, allocating each supplyto the demand based on the priority value assigned to the demand. 109.The computer-readable medium according to claim 80 further containingcomputer-readable and computer executable instructions, wherein theavailability of the at least one capacity constraint is time-phased perperiod.
 110. The computer-readable medium according to claim 81 furthercontaining computer-readable and computer executable instructions,wherein the availability of the at least one capacity constraint istime-phased per period.
 111. The computer-readable medium according toclaim 80 further containing computer-readable and computer executableinstructions, wherein the at least one capacity constraint has anavailability defined as a rate per period.
 112. The computer-readablemedium to claim 81 further containing computer-readable and computerexecutable instructions, wherein the at least one capacity constrainthas an availability defined as a rate per period.
 113. Thecomputer-readable medium according to claim 109 further containingcomputer-readable and computer executable instructions, wherein the atleast one capacity constraint has an availability defined as a rate perperiod.
 114. The computer-readable medium according to claim 110 furthercontaining computer-readable and computer executable instructions,wherein the at least one capacity constraint has an availability definedas a rate per period.
 115. The computer-readable medium according toclaim 80 further containing computer-readable and computer executableinstructions, wherein the availability of the at least one capacityconstraint is time-phased and has an availability defined as a rate perperiod.
 116. The computer-readable medium according to claim 81 furthercontaining computer-readable and computer executable instructions,wherein the availability of the at least one capacity constraint istime-phased and has an availability defined as a rate per period. 117.The computer-readable medium according to claim 109 further containingcomputer-readable and computer executable instructions, wherein theavailability of the at least one capacity constraint is time-phased andhas an availability defined as a rate per period.
 118. Thecomputer-readable medium according to claim 110 further containingcomputer-readable and computer executable instructions, wherein theavailability of the at least one capacity constraint is time-phased andhas an availability defined as a rate per period.
 119. Thecomputer-readable medium according to claim 111 further containingcomputer-readable and computer executable instructions, wherein theavailability of the at least one capacity constraint is time-phased andhas an availability defined as a rate per period.
 120. Thecomputer-readable medium according to claim 112 further containingcomputer-readable and computer executable instructions, wherein theavailability of the at least one capacity constraint is time-phased andhas an availability defined as a rate per period.
 121. Thecomputer-readable medium according to claim 80 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 122. Thecomputer-readable medium according to claim 81 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 123. Thecomputer-readable medium according to claim 109 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 124. Thecomputer-readable medium according to claim 110 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 125. Thecomputer-readable medium according to claim 111 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 126. Thecomputer-readable medium according to claim 112 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 127. Thecomputer-readable medium according to claim 115 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 128. Thecomputer-readable medium according to claim 116 further containingcomputer-readable and computer executable instructions, wherein at leastone capacity constraint has a cumulative maximum value.
 129. Thecomputer-readable medium according to claim 79 further containingcomputer-readable and computer executable instructions, wherein the eachsupply in the supply structure has a plurality of sources for fulfillingthe supply.
 130. The computer-readable medium according to claim 80further containing computer-readable and computer executableinstructions, wherein the each supply in the supply structure has aplurality of sources for fulfilling the supply.
 131. Thecomputer-readable medium according to claim 81 further containingcomputer-readable and computer executable instructions, wherein the eachsupply in the supply structure has a plurality of sources for fulfillingthe supply.
 132. The computer-readable medium according to claim 79further containing computer-readable and computer executableinstructions, wherein the method is repeated for a next item, andwherein the item is a plurality of items.
 133. The computer-readablemedium according to claim 80 further containing computer-readable andcomputer executable instructions, wherein the method is repeated for anext item, and wherein the item is a plurality of items.
 134. Thecomputer-readable medium according to claim 81 further containingcomputer-readable and computer executable instructions, wherein themethod is repeated for a next item, and wherein the item is a pluralityof items.
 135. The computer-readable medium according to claim 132further containing computer-readable and computer executableinstructions, wherein a priority value is assigned to each supply anddemand for each item of the plurality of items.
 136. Thecomputer-readable medium according to claim 133 further containingcomputer-readable and computer executable instructions, wherein apriority value is assigned to each supply and demand for each item ofthe plurality of items.
 137. The computer-readable medium according toclaim 134 further containing computer-readable and computer executableinstructions, wherein a priority value is assigned to each supply anddemand for each item of the plurality of items.
 138. Thecomputer-readable medium according to claim 132 further containingcomputer-readable and computer executable instructions, furtherincluding the step of, prior to step (a), queuing the plurality ofdemands according to a sub-priority value assigned to each supply andeach demand for the item, wherein the sub-priority value is defined bythe sequence in which the each supply and the each demand for the itemwas requested.
 139. The computer-readable medium according to claim 133further containing computer-readable and computer executableinstructions, further including the step of, prior to step (a), queuingthe plurality of demands according to a sub-priority value assigned toeach supply and each demand for the demand, wherein the sub-priorityvalue is defined by the sequence in which the each supply and the eachdemand for the item was requested.
 140. The computer-readable mediumaccording to claim 134 further containing computer-readable and computerexecutable instructions, further including the step of, prior to step(a), queuing the plurality of demands according to a sub-priority valueassigned to each supply and each demand for the item, wherein thesub-priority value is defined by the sequence in which the each supplyand the each demand for the item was requested.
 141. Thecomputer-readable medium according to claim 79 further containingcomputer-readable and computer executable instructions, wherein,following step (c), further comprising the steps of: (d1) retrieving theallocation record of the each supply; (d2) providing at least one pegrecord for each link determined from the highest level demand to a nexthighest demand; (d3) tracking the each supply allocated to the demand,in step (d1), as a path of links, from the highest level to the lowestlevel in the supply structure; and (d4) maintaining a record for thepath of links determined in step (d3); wherein steps (d2) is repeatedfor the highest level to the lowest level of the supply structure. 142.The computer-readable medium according to claim 80 further containingcomputer-readable and computer executable instructions, wherein,following step (c), further comprising the steps of: (d1) retrieving theallocation record of the each supply; (d2) providing at least one pegrecord for each link determined from the highest level demand to a nexthighest demand; (d3) tracking the each supply allocated to the demand,in step (d1), as a path of links, from the highest level to the lowestlevel in the supply structure; and (d4) maintaining a record for thepath of links determined in step (d3); wherein steps (d2) is repeatedfor the highest level to the lowest level of the supply structure. 143.The computer-readable medium according to claim 81 further containingcomputer-readable and computer executable instructions, wherein,following step (c), further comprising the steps of: (d1) retrieving theallocation record of the each supply; (d2) providing at least one pegrecord for each link determined from the highest level demand to a nexthighest demand; (d3) tracking the each supply allocated to the demand,in step (d1), as a path of links, from the highest level to the lowestlevel in the supply structure; and (d4) maintaining a record for thepath of links determined in step (d3); wherein steps (d2) is repeatedfor the highest level to the lowest level of the supply structure. 144.The method according to claim 2, wherein in step (b) the available dateis determined based on the availability of capacity constraints requiredto fulfill the each supply.
 145. The method according to claim 144,wherein step (a) further comprises subsequent steps: (a1) generating ademand list and a supply list for fulfilling the demand for the item;(a2) for the first demand in the demand list, determining if a supplyfor fulfilling the demand exists; (a3) if a supply for fulfilling thedemand exists, determining the plan date for the supply as in step (a);and (a4) if a supply for fulfilling the demand does not exist, planninga new supply for fulfilling the demand and determining the plan date forthe supply as in step (a) wherein the steps (a2) through (a4) areexecuted for each demand in the demand list.
 146. The method accordingto claim 144, wherein step (b) further comprises subsequent steps: (b1)for each item in the supply structure, sorting a supply list by theavailable date; (b2) for each item in the supply structure, sorting ademand list by the plan date of the demand; (b3) allocating the eachsupply to each demand; and (b4) propagating the available date from thelowest level to a next lowest level in the supply structure to provide anext lowest level available date; wherein steps (b1) through (b4) areexecuted for each item in the supply structure from the lowest level tothe highest level in the supply structure.
 147. The method according toclaim 146, further including the step of, prior to step (b4), recordingthe allocation of the each supply to the demand.
 148. The methodaccording to claim 146, in step (b3), allocating each supply to thedemand is based on the plan date for each demand.
 149. The methodaccording to claim 146, in step (b3), determining if the demand isfulfilled by the plan date, for a demand fulfilled by the plan date,allocating each supply to the demand based on the plan date, and for ademand not fulfilled by the plan date, allocating each supply to thedemand based on the priority value assigned to the demand.
 150. Themethod according to claim 144, wherein the availability of the at leastone capacity constraint is time-phased per period.
 151. The methodaccording to claim 144, wherein the availability of the at least onecapacity constraint has an availability defined as a rate per period.152. The method according to claim 150, wherein the availability of theat least one capacity constraint has an availability defined as a rateper period.
 153. The method according to claim 144, wherein theavailability of the at least one capacity constraint is time-phased andhas an availability defined as a rate per period.
 154. The methodaccording to claim 144, wherein the at least one capacity constraint hasa cumulative maximum value.
 155. The method according to claim 150,wherein the at least one capacity constraint has a cumulative maximumvalue.
 156. The method according to claim 153, wherein the at least onecapacity constraint has a cumulative maximum value.
 157. The methodaccording to claim 144, wherein each supply in the supply structure hasa plurality of sources for fulfilling the supply.
 158. Thecomputer-readable medium according to claim 144, wherein the method isrepeated for a next item, and wherein the item is a plurality of items.159. The method according to claim 158, wherein a priority value isassigned to each supply and demand for each item of the plurality ofitems.
 160. The method according to claim 159, further including thestep of, prior to step (a), queuing the plurality of demands accordingto a sub-priority value assigned to each supply and each demand for theitem, wherein the sub-priority value is defined by the sequence in whichthe each supply and the each demand for the item was requested.
 161. Themethod according to claim 144, wherein, following step (c), furthercomprising the steps of: (d1) retrieving the allocation record of theeach supply; (d2) providing at least one peg record for each linkdetermined from the highest level demand to a next highest demand; (d3)tracking the each supply allocated to the demand, in step (d1), as apath of links, from the highest level to the lowest level in the supplystructure; and (d4) maintaining a record for the path of linksdetermined in step (d3); wherein steps (d2) is repeated for the highestlevel to the lowest level of the supply structure.
 162. Thecomputer-readable medium according to claim 82 further containingcomputer-readable and computer executable instructions, wherein theavailability of the at least one capacity constraint is time-phased perperiod.
 163. The computer-readable medium to claim 82 further containingcomputer-readable and computer executable instructions, wherein the atleast one capacity constraint has an availability defined as a rate perperiod.
 164. The computer-readable medium according to claim 162 furthercontaining computer-readable and computer executable instructions,wherein the at least one capacity constraint has an availability definedas a rate per period.
 165. The computer-readable medium according toclaim 82 further containing computer-readable and computer executableinstructions, wherein the availability of the at least one capacityconstraint is time-phased and has an availability defined as a rate perperiod.
 166. The computer-readable medium according to claim 82 furthercontaining computer-readable and computer executable instructions,wherein at least one capacity constraint has a cumulative maximum value.167. The computer-readable medium according to claim 162 furthercontaining computer-readable and computer executable instructions,wherein at least one capacity constraint has a cumulative maximum value.168. The computer-readable medium according to claim 163 furthercontaining computer-readable and computer executable instructions,wherein at least one capacity constraint has a cumulative maximum value.169. The computer-readable medium according to claim 82 furthercontaining computer-readable and computer executable instructions,wherein the each supply in the supply structure has a plurality ofsources for fulfilling the supply.
 170. The computer-readable mediumaccording to claim 82 further containing computer-readable and computerexecutable instructions, wherein the method is repeated for a next item,and wherein the item is a plurality of items.
 171. The computer-readablemedium according to claim 170 further containing computer-readable andcomputer executable instructions, wherein a priority value is assignedto each supply and demand for each item of the plurality of items. 172.The computer-readable medium according to claim 171 further containingcomputer-readable and computer executable instructions, furtherincluding the step of, prior to step (a), queuing the plurality ofdemands according to a sub-priority value assigned to each supply andeach demand for the item, wherein the sub-priority value is defined bythe sequence in which the each supply and the each demand for the itemwas requested.
 173. The computer-readable medium according to claim 82further containing computer-readable and computer executableinstructions, wherein, following step (c), further comprising the stepsof: (d1) retrieving the allocation record of the each supply; (d2)providing at least one peg record for each link determined from thehighest level demand to a next highest demand; (d3) tracking the eachsupply allocated to the demand, in step (d1), as a path of links, fromthe highest level to the lowest level in the supply structure; and (d4)maintaining a record for the path of links determined in step (d3);wherein steps (d2) is repeated for the highest level to the lowest levelof the supply structure.